package orderoid.formulaire;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;

import orderoid.singleton.SingletonCommande;
import orderoid.singleton.SingletonRestaurant;
import orderoid.soap.business.webServiceRechercherRestaurants;
import orderoid.soap.classeCommune.Restaurant;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class OrderoidChoixRestaurantActivity extends Activity
{

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.choix_restaurant);
		
		//declaration spinner et variable
		Spinner spinner = (Spinner) findViewById(R.id.spinnerListeRestaurant);
		List<Restaurant> listeRestos = new ArrayList<Restaurant>();
		webServiceRechercherRestaurants wSResto = new webServiceRechercherRestaurants();

		try
		{
			listeRestos = wSResto.execute("").get();
		} catch (InterruptedException e)
		{
			listeRestos = null;
			e.printStackTrace();
		} catch (ExecutionException e)
		{
			listeRestos = null;
			e.printStackTrace();
		}

		ArrayList<String> list = new ArrayList<String>();
		// ajout liste restaurant
		for (Restaurant restaurant : listeRestos)
		{
			list.add(restaurant.getNom());
			ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
			adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
			spinner.setAdapter(adapter);
		}
	}

	public void validerVoirMenu(View view)
	{
		Intent voirMenu = new Intent(this, OrderoidListeMenuActivity.class);

		Spinner s = (Spinner) findViewById(R.id.spinnerListeRestaurant);
		String strSelectedResto = s.getSelectedItem().toString();

		List<Restaurant> restos = new ArrayList<Restaurant>();
		webServiceRechercherRestaurants ws = new webServiceRechercherRestaurants();
		try
		{
			restos = ws.execute("").get();
		} catch (InterruptedException e)
		{
			restos = null;
			e.printStackTrace();
		} catch (ExecutionException e)
		{
			restos = null;
			e.printStackTrace();
		}

		Restaurant resto = new Restaurant();

		for (Restaurant r : restos)
		{
			if (r.getNom().equals(strSelectedResto))
			{
				resto = r;
				break;
			}
		}

		//on vérifie que un restaurant n'ai pas déja été séléctionné au préalable sinon on clear la précédente commande
		if(SingletonRestaurant.getInstance().getRestaurant().getNom() != null)
		{
			SingletonRestaurant.getInstance().clearSingletonRestaurant();
			SingletonCommande.getInstance().clearSingletonCommande();
		}
		
		SingletonRestaurant.getInstance().setRestaurant(resto);

		// lance la fenetre suivante en incluant l'id du restaurant cible
		voirMenu.putExtra("idRestaurant", Integer.toString(resto.getIdRestaurant()));

		startActivity(voirMenu);
	}

	public void validerVoirProduit(View view)
	{
		Intent voirProduit = new Intent(this, OrderoidListeProduitActivity.class);

		Spinner s = (Spinner) findViewById(R.id.spinnerListeRestaurant);
		String strSelectedResto = s.getSelectedItem().toString();

		List<Restaurant> restos = new ArrayList<Restaurant>();
		webServiceRechercherRestaurants ws = new webServiceRechercherRestaurants();
		try
		{
			restos = ws.execute("").get();
		} catch (InterruptedException e)
		{
			restos = null;
			e.printStackTrace();
		} catch (ExecutionException e)
		{
			restos = null;
			e.printStackTrace();
		}

		// int idResto = 0;
		Restaurant resto = new Restaurant();

		// pour tout les restaurants: Cherché notre selection
		for (Restaurant r : restos)
		{
			if (r.getNom().equals(strSelectedResto))
			{
				resto = r;
				break;
			}
		}

		SingletonRestaurant.getInstance().setRestaurant(resto);
		// lance la fenetre suivante en incluant l'id du restaurant cible
		voirProduit.putExtra("idRestaurant", Integer.toString(resto.getIdRestaurant()));

		startActivity(voirProduit);
	}

	// voirPanier
	public void voirPanier(View view)
	{
		Intent pannier = new Intent(this, OrderoidValidationPanierActivity.class);
		startActivity(pannier);
	}

	// retourAccueil
	public void retourAccueil(View view)
	{
		Intent accueil = new Intent(this, OrderoidMainActivity.class);
		// lance la fenetre suivante
		startActivity(accueil);
	}
}